package com.kuang.mapper;
import com.kuang.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysUserMapper {
    int deleteByPrimaryKey(Integer id);

    /**
     * 根据学号删除用户
     * */
    void deleteByUsername(@Param("username") String username);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    SysUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysUser record);

//    int updateByPrimaryKey(SysUser record);

    /**
     * 根据 id 修改用户密码
     * */
    int updatePasswordByID(SysUser sysUser);

    /**
     * 根据用户名获取用户信息
     * */
    SysUser selectByUsername(String username);

    /**
     * 查询所有用户信息
     */

    List<SysUser> selectUserAll();

    /**
     * 根据权限查询 sys_permission 表中的菜单信息
     * */
    List<SysPermission> getMenuList(@Param("parentName") String parentName);


    /**
     *教师系统：学生分页查询
     * **/
    List<SysUser> TeFindBySearchStudent(@Param("params") Params params);
    /**
     *管理员：学生分页查询
     * **/
    List<SysUser> findBySearchStudent(@Param("params") Params params);

    /**
     *管理员：教师分页查询
     * **/
    List<SysUser> findBySearchTeacher(@Param("params") Params params);
    /**
     * 定义查询学院、专业和用户的方法
     * */
    List<Department> getAllDepartments();
    List<Major> getMajorsByDepartmentId(@Param("departmentId")  Long departmentId);
    List<SysUser> getSysUsersByMajorId(@Param("majorId") Long majorId);
    /***
     * 注册账号申请管理
     * **/
    int accountManagement(SysUser sysUser);
}